
/// @fileName cache_manager.dart
/// @description 缓存管理类：目前实现内存缓存几个方法，后期如果需要使用磁盘缓存等再添加扩展
/// @date 2022/10/10 14:50
/// @author LiuChuanan
class CacheManager {
  /// 1.设置缓存
  /// 1.1内存缓存
  /// 1.2磁盘缓存
  /// 设置最大缓存条数
  /// 设置最大缓存空间

  /// 2.读取缓存
  /// 2.1读取内存缓存
  /// 2.2读取磁盘缓存

  /// 3.清空缓存
  /// 3.1清空内存缓存
  /// 3.2清空磁盘缓存
  /// 3.2.1磁盘缓存时间设置

  CacheManager._internal();
  factory CacheManager()=>_instance;
  static late final CacheManager _instance = CacheManager._internal();

  /// 内存缓存
  final Map<String, dynamic> _memoryCache = <String, dynamic>{};

  /// 写入缓存
  void write({
    bool cache = true,
    required String cacheKey,
    required dynamic cacheValue}) {
    if (cache) {
      _memoryCache[cacheKey] = cacheValue;
    }
  }

  /// 读取缓存
  dynamic read({required String cacheKey}) {
    if (_memoryCache.containsKey(cacheKey)) {
      return _memoryCache[cacheKey];
    }
    return null;
  }

  /// 清空缓存
  void clear() {
    _memoryCache.clear();
  }

}